using System;
using System.Collections.Generic;
using System.Text;

namespace WPF_DbCenter.CommonMethod
{
    public enum SchemaArgsCollection
    {
        Yes,
        No,
    };

    public class CreateTableSchemaArgs
    {
        public SchemaArgsCollection option { get; set; }

        public string DisplayName { get; set; }
        public override string ToString()
        {
            return DisplayName;
        }
    }

    /// <summary>
    /// 
    /// </summary>
    public enum OpenMode
    {
        /// <summary>
        ///   	Permits multiple processes to open and modify the database.
        /// </summary>
        ReadWrite,
        /// <summary>
        /// Lets you open a read-only copy of the database
        /// </summary>
        ReadOnly,
        /// <summary>
        /// Does not permit other processes to open or modify the database.
        /// </summary>
        Exclusive,
        /// <summary>
        /// Permits other processes to read, but not modify, the database while you have it open.
        /// </summary>
        SharedRead,

    };

    /// <summary>
    /// Swith open db mode args
    /// </summary>
    public class OpenModeClass
    {
        public OpenMode mode { get; set; }
        public string modeDisplayName { get; set; }
        public override string ToString()
        {
            return modeDisplayName;
        }
    }

    /// <summary>
    /// Args for create table and modify table schema using
    /// </summary>
    internal class CreateTableArgs
    {
        public string  fieldName { get; set; }
        public string dataType { get; set; }
        public int dataLength { get; set; }
        public bool isUnique { get; set; }
        public bool isPrimaryKey { get; set; }
        public bool allowNulls { get; set; }
    }

    /// <summary>
    /// Vital
    /// </summary>
    public enum TreeItemType
    {
        Database,
        Table,
        Column,
        Index,
        ColumnParentNode,
        IndexParentNode,
        NotDefined,
    }

    internal class TreeItemArgs
    {
        public string DataBaseName { get; set; }

        public string IndexName { get; set; }

        public string TableName { get; set; }

        public string ColumnName { get; set; }

        public TreeItemType ItemType { get; set; }
    }

    [Serializable()]
    internal class DbHistoryList
    {
        public List<string> DbHistoryFullPathList { get; set; }
    }

}
